<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->

<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="../bower_components/iron-collapse/iron-collapse.html">
<link rel="import" href="../bower_components/paper-styles/shadow.html">

<dom-module id="collapsible-card">

  <style>

    :host {
      display: block;
      position: relative;
      @apply(--shadow-elevation-2dp);
    }

  </style>

  <template>

    <content select=":not([collapsible-content])"></content>
    <iron-collapse id="collapse" opened="{{opened}}">
      <content></content>
    </iron-collapse>

  </template>

  <script>

    Polymer({

      is: 'collapsible-card',

      properties: {

        opened: {
          type: Boolean,
          reflectToAttribute: true,
          value: false
        }

      },

      listeners: {
        tap: '_tapHandler'
      },

      _tapHandler: function(e) {
        var target = Polymer.dom(e).localTarget;
        if (target && target.hasAttribute('collapsible-toggle')) {
          this.$.collapse.toggle();
        }
      }

    });

  </script>

</dom-module>
